From: Jo-Philipp Wich Date: Mon, 12 Sep 2022 13:36:14 +0000 (+0200) Subject: ucode: pass-through `ubus_rpc_session` argument X-Git-Url: http://git.openwrt.org/%22http:/oss.oetiker.ch/rrdtool//%22/%22http:/oss.oetiker.ch/rrdtool/%22?a=commitdiff_plain;h=e80d0b2d77f8ed163872971200d24c423db60bb8;p=project%2Frpcd.git ucode: pass-through `ubus_rpc_session` argument Allow the special `ubus_rpc_session` method call argument even if it is not specified in the policy. Signed-off-by: Jo-Philipp Wich --- diff --git a/ucode.c b/ucode.c index bc07047..e0a7937 100644 --- a/ucode.c +++ b/ucode.c @@ -304,8 +304,13 @@ rpc_ucode_validate_call_args(struct ubus_object *obj, const char *ubus_method_na } /* named argument not found in policy */ - if (!found) + if (!found) { + /* allow special ubus_rpc_session argument */ + if (!strcmp("ubus_rpc_session", (char *)hdr->name) && blob_id(attr) == BLOBMSG_TYPE_STRING) + continue; + goto inval; + } } *res = rpc_ucode_blob_array_to_ucv(&script->vm, blob_data(msg), blob_len(msg), true);